import java.util.*;

public class 两数之和 {
    //https://leetcode.cn/problems/two-sum/description/?envType=study-plan-v2&envId=top-interview-150
    //我开始是将所有元素都放入哈希表, 这样会发现会有重复, 一次遍历即可
    public int[] twoSum(int[] nums, int target) {
        int n = nums.length;
        Map<Integer,Integer> map = new HashMap<>();
        for(int i = 0;i < n;i++){
            //判断表中是否存在另一个数
            if(map.containsKey(target - nums[i])){
                return new int[]{i,map.get(target - nums[i])};
            }
            //没有就放入表中
            map.put(nums[i],i);
        }
        return null;
    }
}
